import request from '@/utils/request'

/**
 * 获取学生列表
 * @param {Object} params 查询参数
 * @returns {Promise} 学生列表数据
 */
export function getStudentList(params) {
	return request({
		url: '/student/list',
		method: 'get',
		params,
	})
}

/**
 * 获取学生总数
 * @returns {Promise} 学生总数
 */
export function countStudents() {
	return request({
		url: '/student/count',
		method: 'get',
	})
}

/**
 * 获取学生信息
 * @param {String} stuId 学生学号
 * @returns {Promise} 请求结果
 */
export function getStudentInfo(stuId) {
	return request({
		url: `/student/info/${stuId}`,
		method: 'get',
	})
}

/**
 * 添加学生
 * @param {Object} data 学生数据
 * @returns {Promise} 添加结果
 */
export function addStudent(data) {
	return request({
		url: '/student/add',
		method: 'post',
		data,
	})
}

/**
 * 批量导入学生
 * @param {FormData} formData 包含学生数据表格的表单数据
 * @returns {Promise} 导入结果
 */
export function importStudents(formData) {
	return request({
		url: '/student/import',
		method: 'post',
		data: formData,
		headers: {
			'Content-Type': 'multipart/form-data',
		},
	})
}

/**
 * 更新学生信息
 * @param {String} stuId 学生学号
 * @param {Object} data 学生数据
 * @returns {Promise} 更新结果
 */
export function updateStudent(stuId, data) {
	return request({
		url: `/student/update/${stuId}`,
		method: 'put',
		data,
	})
}

/**
 * 重置学生密码
 * @param {String} stuId 学生学号
 * @returns {Promise} 请求结果
 */
export function resetPassword(stuId) {
	return request({
		url: `/student/reset-password/${stuId}`,
		method: 'post',
	})
}

/**
 * 删除学生
 * @param {String} stuId 学生学号
 * @returns {Promise} 删除结果
 */
export function deleteStudent(stuId) {
	return request({
		url: `/student/delete/${stuId}`,
		method: 'delete',
	})
}

/**
 * 获取学生详情
 * @param {String} id 学生ID
 * @returns {Promise} 学生详细信息
 */
export function getStudentDetail(id) {
	return request({
		url: `/student/info/${id}`,
		method: 'get',
	})
}

/**
 * 导出学生数据
 * @param {Object} params 查询参数
 * @returns {Promise} 下载链接
 */
export function exportStudents(params) {
	return request({
		url: '/student/export',
		method: 'get',
		params,
		responseType: 'blob',
	})
}

/**
 * 批量导入学生（与importStudents保持兼容）
 * @param {FormData} formData 包含学生数据表格的表单数据
 * @returns {Promise} 导入结果
 */
export function batchImportStudents(formData) {
	return importStudents(formData)
}
